In general, encryption techniques are commonly used to achieve data security. An encryption process involves converting data in plain text into an unreadable text called cipher text. A decryption process involves converting cipher text back to the corresponding plain text. Cryptography techniques are based on encryption and decryption of data, wherein the encryption and decryption utilize secret information, referred to as a “key”, which is used to convert plain text to cipher text and vice versa. Various cryptography techniques have been developed for creating keys (e.g., public and private keys) for protecting data communications or authenticating messages.
For instance, the well-known Montgomery Ladder algorithm is used in cryptographic algorithms to perform exponentiation of numbers in a prime field, for example in RSA, and to perform scalar multiplication on elliptic curves in Elliptic Curve Cryptography (ECC), including, for example, Elliptic Curve Diffie-Hellman (ECDH) and Elliptic Curve Digital Signature Algorithm (ECDSA). A primary advantage of the Montgomery Ladder algorithm is that the algorithm runs in constant time with high regularity. That is, regardless of the exponent or scalar, the same number of operations is performed. This property is used to mitigate timing attacks and side-channel attacks that can be performed on exponentiation and scalar multiplication operations implemented in hardware and on Intel x86 CPUs. Moreover, implementations of the Montgomery Ladder algorithm can also be resistant to cache-line attacks on Intel x86 CPUs.
Specifically, the Montgomery Ladder algorithm is commonly used to efficiently perform scalar multiplication operations with Montgomery elliptic curves. For ECC scalar operations, pre-computation can be performed when a fixed elliptic curve point (e.g., generator or base point) is used in multiple scalar multiplication calculations. By pre-computing some values before any of the scalar multiplication calculations are performed, the number of operations required in each scalar multiplication calculation for ECC can be reduced. A drawback of the Montgomery Ladder algorithm is that it does not lend itself to pre-computation.